using System;
using System.Collections.Generic;

using PMServiceDesk.DataType;
using PMServiceDesk.DataAccess;

namespace PMServiceDesk.BusinessLogic
{
    public class FeriadoLogic
    {
        #region Variables

        private FeriadoData _feriadoData;

        #endregion

        #region Constructores

        public FeriadoLogic()
        {
            _feriadoData = new FeriadoData();
        }

        #endregion

        #region Metodos

        public FeriadoType CargarPorId(string id)
        {
            _feriadoData.FiltrarPorId(id);

            return _feriadoData.Cargar();
        }

        public void Grabar(FeriadoType feriado)
        {
            _feriadoData.Grabar(feriado);
        }

        public List<FeriadoType> CargarExplorador(string calendarioId,string fecha)
        {
            if(calendarioId != "") _feriadoData.FiltrarPorCalendarioId(calendarioId);
            if(fecha != "") _feriadoData.FiltrarPorFecha(fecha);

            return _feriadoData.CargarListaVista();
        }

        public List<FeriadoType> CargarExploradorPaginado(FeriadoType registroBusqueda, int paginaActual = 0, int cantidadMostrar = 0, string orderBy = "")
        {
            _feriadoData.FiltrarPorCalendarioId(registroBusqueda.CalendarioId);
            if (registroBusqueda.Fecha != "") _feriadoData.FiltrarPorFecha(registroBusqueda.Fecha);
            if (registroBusqueda.Descripcion != "") _feriadoData.FiltrarPorDescripcion(registroBusqueda.Descripcion);

            return _feriadoData.CargarListaVista(paginaActual, cantidadMostrar, orderBy);
        }

        #endregion
    }
}
